package com.mybatis.session;

import com.mybatis.cfg.Configuration;
import com.mybatis.session.defaults.DefaultSqlSessionFactory;
import com.mybatis.utils.XmlUtils;
import org.dom4j.DocumentException;

import java.io.InputStream;

/**
 * 手动创建SqlSessionFactoryBuilder
 * 提供 SqlSessionFactory build(InputStream inputStream)方法
 */
public class SqlSessionFactoryBuilder {

    /**
     * 该方法通过流对象去解析我们的主配置文件和映射文件
     * 我们将解析出来的配置文件信息放入到一个自定义的Configuration类中
     * @param inputStream
     * @return
     */
    public SqlSessionFactory build(InputStream inputStream){

        Configuration configuration = null;
        try {
            configuration = XmlUtils.loadXMLConfiguration(inputStream);
        } catch (Exception e) {
            throw new RuntimeException("配置文件异常");
        }

        return new DefaultSqlSessionFactory(configuration);
    }
}
